never와 unknown

❓질문

never와 unknown 타입에 대해서 설명해주세요.


💡 조사하기전 내가 알고 있던 내용

never타입은 존재하지않는값에 가깝습니다 무한루프를 돌거나 값을 반환할 수 없고 항상 예외처리되는 함수의 반환타입을 never라고 할 수 있습니다.
unknown타입은 알수 없는 값에 가깝습니다 any타입과 비교를 해봤을때 any타입은 어떠한 값이던 들어갈 수 있지만 unknown은 특정 타입으로 사용을 할려면 네로잉후 사용을 해야한다는점에서 안정성이 있습니다.


🏫 정리한 내용

먼저, never는 절대 발생할 수 없는 값을 나타내는 타입입니다. 함수가 값을 반환하지 않고 항상 예외를 던지거나 무한 루프를 도는 경우, 그 반환 타입은 never가 됩니다. never는 "bottom type"이라고도 불리며, 모든 타입의 하위 타입입니다.

반면, unknown은 알 수 없는 값을 나타내는 타입입니다. "외부 API 호출 결과"와 같이 구체적인 타입을 미리 알 수 없고, 런타임에 타입이 결정되는 경우에 사용합니다. any와 비슷하지만 더 안전한 방식입니다. any는 어떤 값이든 허용하기 때문에 타입 안정성이 떨어질 수 있지만, unknown은 특정한 타입으로 사용하려면 타입을 좁혀야 하기 때문입니다. unknown은 any와 함께 "top type"이라고도 불리며, 모든 타입의 상위 타입입니다.